﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Text;

/// <summary>
///JSONUtility 的摘要说明
/// </summary>
public class JSONUtility
{
    public JSONUtility()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
    }
    public static string CreateJsonParameters(DataTable dt)
    {

        /* /****************************************************************************

         * Without goingin to the depth of the functioning of this Method, i will try to give an overview

         * As soon as this method gets a DataTable it starts to convert it into JSON String,

         * it takes each row and in each row it grabs the cell name and its data.

         * This kind of JSON is very usefull when developer have to have Column name of the .

         * Values Can be Access on clien in this way. OBJ.HEAD[0].<ColumnName>

         * NOTE: One negative point. by this method user will not be able to call any cell by its index.

         * *************************************************************************/

        StringBuilder JsonString = new StringBuilder();

        //Exception Handling        

        if (dt != null)
        {

            JsonString.Append("[");

            for (int i = 0; i < dt.Rows.Count; i++)
            {

                JsonString.Append("{ ");

                for (int j = 0; j < dt.Columns.Count; j++)
                {

                    if (j < dt.Columns.Count - 1)
                    {

                        JsonString.Append("" + dt.Columns[j].ColumnName.ToString() + ":" + "\"" + dt.Rows[i][j].ToString() + "\",");

                    }

                    else if (j == dt.Columns.Count - 1)
                    {

                        JsonString.Append("" + dt.Columns[j].ColumnName.ToString() + ":" + "\"" + dt.Rows[i][j].ToString() + "\"");

                    }

                }

                /*end Of String*/

                if (i == dt.Rows.Count - 1)
                {

                    JsonString.Append("} ");

                }

                else
                {

                    JsonString.Append("}, ");

                }

            }

            JsonString.Append("]");

            return JsonString.ToString();

        }

        else
        {



            return null;

        }

    }

}
